package com.mybatis.mapper;

import com.mybatis.domain.Users;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户操作接口
 */
public interface UsersMapper {

    /**
     * 查询所有用户信息
     * @return 用户的数据集
     */
    public List<Users> list();

    /**
     * 根据ID找对象
     * @param userId
     * @return
     */
    public Users findInfo(Integer userId);

    /**
     * 增加
     * @param users
     * @return
     */
    public int add(Users users);

    /**
     * 修改
     * @param users
     * @return
     */
    public int update(Users users);


    /**
     *
     * @param userId
     * @return
     */
    public int delete(Integer userId);

    /**
     * 登录
     * @param userName
     * @param userPassword
     * @return
     */
    public Users login(@Param("userName") String userName,
                       @Param("userPassword") String userPassword);

    /**
     * 模糊查询
     * @param userName
     * @return
     */
    public List<Users> listLike(String userName);


    /**
     * 分页
     * @param from 从第几条开始查
     * @param pageSize 每页记录数
     * @return
     */
    public List<Users> listFenye(@Param("from") Integer from,
                                 @Param("pageSize") Integer pageSize);

    /**
     * if+where 动态查询
     * @param users
     * @return
     */
    public List<Users> list2(Users users);


    /**
     *
     * foreach 查询  in
     *      list 集合
     */
    public List<Users> listByIn(List<Integer> userIdList);


    /**
     * foreach 删除
     *      array 数组
     */
    public int deleteByIn(int[] userIdArray);


    /**
     * 查询所有的用户信息，以及角色名称
     */
    public List<Users> listByUserAnaRole();

    /**
     * 查询所有的用户信息，以及角色信息
     */
    public List<Users> listByUserAnaRole2();

}
